文件和目录常用命令
(一) 知识点目录
ls 查看目录内容
- a
所有内容-l
列表显示- -h -l 列表显示(人性化)
cd 切换目录
创建和删除
- touch
- rm
- mkdir
拷贝和移动
- cp
- mv
查看文件内容
- cat
- more
- grep
其它命令
- echo
- 重定向
>和>>
- 管道符 |
(二) ls命令
(1) 作用
查看目录内容
(2) 选项和参数
-a
显示指定目录下所有子目录和文件, 包括隐藏文件-l
以列表的方式显示文件的详细信息-h
配合-l
以人性化的方式显示文件大小
(3) 举例
ls #列出当前目录所有文件和文件夹
ls aa #列出aa文件夹的内容
ls -l #列表形式显示
ls -l -h #列表形式显示,文件大小显示方式不一样
# 选项可以合并写
ls -lha
(4) 文件大小的单位
(5) 通配符的使用
- *:匹配任意多个字符。
- ?:匹配任意一个字符。
- [abc]:匹配中括号内出现的任意一个字符。
- [1-9] : 匹配1-9中任意一个
举例:
ls *.html #列出当前目录的所有html文件
touch 111 131 121 122
ls 1?1 #只列出1开头, 中间是任意一个字符串, 然后1结尾的文件
ls *mo* #列出中间包含有mo的文件
ls *[ad]* #列出含有a或者d的文件
(6) 类似的命令tree
linux系统默认没有tree, 需要安装
使用
tree
命令可以以树状图列出文件目录结构添加
-d
参数则只显示目录
(1) 安装
下载tree软件
wget ftp://mama.indstate.edu/linux/tree/tree-1.8.0.tgz
解压tree压缩包
tar zxvf tree-1.8.0.tgz
进入解压后端文件夹
cd tree-1.8.0
安装tree软件
make
拷贝tree到bin目录
cp tree /bin
在任意目录使用tree
cd tree tree aaa
(三) 切换目录命令cd
cd 命令,是 Change Directory 的缩写,用来切换目录。
pwd命令, 显示当前目录所在路径
特殊符号 | 作 用 |
---|---|
~ | 代表当前登录用户的主(家)目录 * root用户的家目录 /root * zhangsan用户的家目录 /home/zhangsan |
~用户名 | 表示切换至指定用户的主目录 |
- | 代表上次所在目录 |
. | 代表当前目录 |
.. | 代表上级目录 |
举例:
pwd #查看当前目录
cd /www/wwwroot #切换到wwwroot目录
cd ~ #回家,~可以省略
cd ~zhangsan #切换到zhangsan用户的家目录
cd -
(四) 相对路径和绝对路径
- 相对路径: 在输入路径时, 最前面不是
/
或者~
, 表示相对当前目录所在的目录位置 - 绝对路径: 在输入路径时, 最前面是
/
或~
, 表示从根目录/家目录开始的具体目录位置
举例:
cd /www/wwwroot #绝对路径,是以/开头
cd ./h5 #相对路径,不是/或~开头
cd ~/aaa #绝对路径,是以~开头
(五) 创建文件命令touch
使用touch命令可以在当前目录创建文件
touch 文件名
如果文件不存在, 则创建一个空白文件, 如果文件存在, 更新文件创建时间(不会改变文件内容)
touch demo.txt #创建一个空白的txt文件 vim demo.txt #修改内容 ls -lh #以人性化列表的方式查看目录内容 touch demo.txt #重新创建文件,但并不会覆盖原先的文件,只是更新了时间 ls -lh
(六) 创建文件夹命令mkdir
例1. 创建文件夹aa
mkdir aa
touch bb
mkdir bb #报错不能有相同的名字
例2. 递归创建文件夹
需要添加参数 -p
mkdir -p xx/yy/zz/11.txt #复制xshell的文字用ctrl+ins,粘贴用shift+ins
tree xx #树状显示内容
(七) 删除文件命令rm
命令解释
- 用来删除文件, 需要小心, 使用rm删除的文件不经过回收站, 无法恢复
- 删除不存在的文件会报错, 添加
-f
(强制删除)就不会报错 - 删除文件夹需要使用
-r
, 意思是递归删除目录下的内容
例1. 删除文件
touche 111.txt
rm 111.txt #删除文件不经过回收站
rm 111.txt #cannot remove ‘aaa.txt’: No such file or directory
rm -f 111.txt #强制删除,文件不存在也不会提示错误
例2. 删除文件夹
mkdir -p a/b/c #递归创建文件夹
rm a #cannot remove ‘a’: Is a directory(是一个目录)
rm -r a #递归删除,需要一层层确认
mkdir a/b/c/d/e/f
rm -rf a #递归强制删除,无需确认
(八) 拷贝和移动命令
(1) tree命令
- 作用: 以树状的方式显示目录结构
- 命令:
tree 目录名
- 参数:
-d
只显示目录
举例:
tree aaa
(2) 拷贝命令cp
命令介绍
作用: 拷贝文件或文件夹, cp ==copy==的简写
命令:
cp 文件 路径
参数:
-i 覆盖文件提示
-r 递归拷贝文件夹
例1. 拷贝文件
cd /www/wwwroot #切换到wwwroot目录
touch demo.txt #创建demo.txt文件
cp demo.txt /home/zhangsan #把demo.txt拷贝到张三的家目录
#或者
cp demo.txt ~zhangsan
例2. 文件被覆盖提示
cd /www/wwwroot
cp demo.txt ~zhangsan #目标路径已经存在demo.txt,系统就会提示"overwrite...",输入y覆盖文件,输入跳过
例3. 拷贝文件夹
cd /www/wwwroot
cp h5 ~zhangsan #无法拷贝,因为h5是目录
cp -r h5 ~zhangsan #递归拷贝文件夹,-r是必须的
cp -r ./h5 ./xyz #拷贝h5目录到当前目录,同时重名为xyz
(3) 移动命令mv
命令介绍
- 作用: ==mv== ==move==的简写, 用来移动或者重命名文件(夹), 也可以重命名文件(夹)
- 命令:
mv 文件名 路径/文件名
- 参数:
-i
覆盖提示
例1. 移动文件
cd /www/wwwroot
mv demo.txt /home/lisi #将文件demo.txt移动到李四家目录
例2. 重名文件
cd ~lisi #切换到李四家目录
mv demo.txt aaa.txt #重命名文件
mv demo.txt /root/bbb.txt #移动文件的同时重命名
(九) 查看文件内容命令
准备工作
cd /www/wwwroot
touch demo.txt
vim demo.txt #随意复制若干内容到文件里, 保存退出
(1) cat命令
- 作用: 可以进行创建文件、文件合并、追加文件内容等操作
- 参数:
-b
标识行号,-n
举例:
cat aa.txt
cat -n aa.txt #显示所有行号
cat -b aa.txt #显示所有非空行号
(2) more命令
作用: 分屏显示文件的内容
文件内容较短的时候,就一次性的显示完文件的所有的内容,当文件的内容较多时,就分屏显示文件的所有内容。
命令:
more 文件名
选项:
-num
一次显示的行数
举例:
more aa.txt
more -5 aa.txt
# 分屏显示后, 按`enter`显示下一屏(下5条)
# 按空格, 显示下一屏(窗口)
# 按q退出
(3) grep命令
- 作用: grep命令是linux一种强大的文本搜索工具
- 命令:
grep 匹配字符串 文件名
- 选项:
-n
显示匹配文本行及行号-v
显示不匹配的其它文本行-i
忽略大小写^a
搜索以a开头的行(行首)ke$
搜索以ke结尾的行(行尾)
举例
grep 333 demo.txt #从demo.txt找出含有333的行
grep -n 333 demo.txt #-n 显示行号
grep -i web demo.txt #-i 忽略大小写
grep ^1 demo.txt #在demo.txt里查找1开头的行
grep yy$ demo.txt #在demo.txt里查找yy结尾的行
(十) echo
重定向> >>
和管道命令|
(1) echo 命令
用来输出命令到终端
(2) 重定向
使用echo
结合>或>>
将输出内容重定向到某个文件
echo hello > aa.txt
把字符串hello
输入到aa.txt
文件echo heihei >> aa.txt
把字符串heihei
追加到aa.txt
文件
echo hello wordl > aa.txt #把字符"hello world"输入到aa.txt文件
echo 12345 > aa.txt #会覆盖aa.txt里的内容
echo 7891jqk >> aa.txt #用>>可以把字符串追加到文件内容的后面
(3) 管道命令|
命令介绍:
- linux允许将一个命令的==结果==作为另一个命令的==输入==, 可以理解成流水线作业, 上一道工序做完了传到下一道工序
- 常见的管道配合命令:
- more 分屏显示
- grep 在结果里查询指定文本
例1. ls+more
ls -lha | more
例2. ls+grep
ls demos | grep dd #从列表里过滤出包含dd的文件或文件夹
(十一) 查找文件
(1) find命令
- 命令格式:
find path -name 文件名
- path是指定查找目录
举例:
find / -name index.html #查找系统所有index.html
find /www/wwwroot -name index.html #查找wwwrootx下的所有index.html
find / -name dex.html #什么也找不到, 因为没有一个文件教dex.html
find / -name *dex.html #模糊查找, 找出包含dex.html的文件
(2) locate命令
linux系统每天至少自动扫描一次文件,将结果保存到数据库,locate查的是数据库记录。locate查询比find要快,但最新文件如果在数据库中没有记录,是需要手动更新(updatedb)
命令格式: locate 文件名
locate index.html #找出所有包含index.html
locate dex.html #找出所有包含dex.html
(3) which命令
which从环境变量文件(/etc/profile)中的path目录中查找,且which找的都是可执行文件。
which nginx
(4) whereis命令
与which类似查询可执行文件,whereis查询更多,会查找出相关的man文件
whereis nginx